This invention relates to digital computers, and more particularly, it relates to digital computer systems in which a plurality of independent processors interact to perform respective activities within various tasks.
Conventionally, a data processing task is performed in its entirety by a single computer. That task, for example, may be the solving of a scientific problem, the calculation of a payroll, etc. But in any case, the speed at which the task is performed by the single computer depends directly upon the number of data bits that the computer can process in a single cycle and the speed of that cycle.
Thus, the computing power of a single computer conventionally is increased by either increasing the number of bits which the computer can operate on in a single cycle or by shortening the computer's cycle time. However, the extent to which the cycle time can be shortened is limited by the speed at which integrated circuits operate. And increasing the number of bits on which a computer can operate in a single cycle also causes the complexity of the computer's design and maintenance to increase.
Alternatively, the speed at which a data processing task is performed may be increased by providing a plurality of independent processors each of which performs one or more activities within the task. In such a multiprocessor system, the individual processors can be tailored to perform their respective activities which decreases the execution time of the overall task. Further, the individual processors of the system inherently make the system modular, which reduces the complexity of the system's design and maintenance.
Also, in the multiprocessor system, the various processors can perform activities for several unrelated tasks at the same time. This allows for more parallelism within the system, which further increases the system's computing power.
However, in the multiprocessor system, some means must be provided for coordinating the various activities that the processors perform. That is, a means must be provided for keeping the execution of activities within a task in the correct sequence. And a means must be provided for keeping many processors active at the same time. But this becomes very complicated as the number of processors, number of tasks, and number of activities within each task increases.
Accordingly, a primary object of the invention is to provide a controller for controlling access to a plurality of records that can be accessed and changed by several independent processors.